From a18ec83b3b5c0ceb3e9e757411b9b2e5e7e74af6 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 31 May 2014 05:17:51 +0200 Subject: [PATCH] reftests: Add reftest for direction change This reftest makes use of the new feature to add signal handlers. It adds a libreftest.so module containing all the code for the reftests. When adding a test named reftest.ui, please keep code contained in a source file names reftest.c and add that file to Makefile.am. https://bugzilla.gnome.org/show_bug.cgi?id=730833 --- testsuite/reftests/Makefile.am | 12 +++ testsuite/reftests/set-default-direction.c | 74 +++++++++++++++++++ .../reftests/set-default-direction.ref.ui | 19 +++++ testsuite/reftests/set-default-direction.ui | 18 +++++ 4 files changed, 123 insertions(+) create mode 100644 testsuite/reftests/set-default-direction.c create mode 100644 testsuite/reftests/set-default-direction.ref.ui create mode 100644 testsuite/reftests/set-default-direction.ui diff --git a/testsuite/reftests/Makefile.am b/testsuite/reftests/Makefile.am index 1277683f3d..50fb091fb6 100644 --- a/testsuite/reftests/Makefile.am +++ b/testsuite/reftests/Makefile.am @@ -295,6 +295,8 @@ testdata = \ rotated-layout.ui \ separator-size.ref.ui \ separator-size.ui \ + set-default-direction.ui \ + set-default-direction.ref.ui \ shorthand-entry-border.css \ shorthand-entry-border.ref.ui \ shorthand-entry-border.ui \ @@ -347,6 +349,16 @@ insttest_PROGRAMS = gtk-reftest reftestdir = $(insttestdir)/reftests reftest_DATA = $(testdata) +reftest_LTLIBRARIES = \ + libreftest.la \ + $(NULL) + +libreftest_la_LDFLAGS = -rpath $(reftestdir) -avoid-version -module $(no_undefined) +libreftest_la_CFLAGS = $(gtk_reftest_CFLAGS) +libreftest_la_LIBADD = $(gtk_reftest_LDADD) +libreftest_la_SOURCES = \ + set-default-direction.c \ + $(NULL) substitutions = \ -e s,@pkglibexecdir\@,$(pkglibexecdir),g \ diff --git a/testsuite/reftests/set-default-direction.c b/testsuite/reftests/set-default-direction.c new file mode 100644 index 0000000000..1f134b63ed --- /dev/null +++ b/testsuite/reftests/set-default-direction.c @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2014 Red Hat Inc. + * + * Author: + * Benjamin Otte + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library. If not, see . + */ + +#include "config.h" + +#include + +G_MODULE_EXPORT void +switch_default_direction (void) +{ + switch (gtk_widget_get_default_direction ()) + { + case GTK_TEXT_DIR_LTR: + g_test_message ("Attention: globally switching default text direction from LTR to RTL"); + gtk_widget_set_default_direction (GTK_TEXT_DIR_RTL); + break; + case GTK_TEXT_DIR_RTL: + g_test_message ("Attention: globally switching default text direction from RTL to LTR"); + gtk_widget_set_default_direction (GTK_TEXT_DIR_LTR); + break; + case GTK_TEXT_DIR_NONE: + default: + g_assert_not_reached (); + break; + } +} + +G_MODULE_EXPORT void +switch_direction (GtkWidget *widget) +{ + switch (gtk_widget_get_direction (widget)) + { + case GTK_TEXT_DIR_LTR: + gtk_widget_set_direction (widget, GTK_TEXT_DIR_RTL); + break; + case GTK_TEXT_DIR_RTL: + gtk_widget_set_direction (widget, GTK_TEXT_DIR_LTR); + break; + case GTK_TEXT_DIR_NONE: + default: + g_assert_not_reached (); + break; + } +} + +G_MODULE_EXPORT void +swap_child (GtkWidget *window) +{ + GtkWidget *image; + + gtk_container_remove (GTK_CONTAINER (window), gtk_bin_get_child (GTK_BIN (window))); + + image = gtk_image_new_from_icon_name ("go-next", GTK_ICON_SIZE_BUTTON); + gtk_widget_show (image); + gtk_container_add (GTK_CONTAINER (window), image); +} + diff --git a/testsuite/reftests/set-default-direction.ref.ui b/testsuite/reftests/set-default-direction.ref.ui new file mode 100644 index 0000000000..c9fe35a463 --- /dev/null +++ b/testsuite/reftests/set-default-direction.ref.ui @@ -0,0 +1,19 @@ + + + + + + False + popup + + + + + + True + False + go-next + + + + diff --git a/testsuite/reftests/set-default-direction.ui b/testsuite/reftests/set-default-direction.ui new file mode 100644 index 0000000000..33cf5ca781 --- /dev/null +++ b/testsuite/reftests/set-default-direction.ui @@ -0,0 +1,18 @@ + + + + + + False + popup + + + + + True + False + go-next + + + + -- 2.30.2